package ui.robots_wicket;

import org.apache.wicket.Page;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.PropertyListView;
import unq.uis.robots.applicationsModels.JugadorVista;
import unq.uis.robots.applicationsModels.PelearApplicationModel;
import unq.uis.robots.model.Robot;

public class ElegirContrincantePage extends WebPage{
	
	private static final long serialVersionUID = 1L;
	private Page mainPage;
	private JugadorVista jugadorVista;
	private PelearApplicationModel pelearApplicationModel;
	private int apuesta;

	public ElegirContrincantePage(Page page, Robot robot) {
		this.mainPage = page;
		this.jugadorVista = (JugadorVista)page.getDefaultModelObject();		
		this.jugadorVista.setRobotSeleccionado(robot);	
		this.pelearApplicationModel = new PelearApplicationModel(this.jugadorVista);		
		this.agregarLabels();
		this.agregarBotones();
		this.agregarTablaContrincantes();
	}
	
	public void agregarTablaContrincantes(){
		PropertyListView<Robot> otrosRobots = new PropertyListView<Robot>("otrosRobots",this.jugadorVista.getOtrosRobots()) {
			private static final long serialVersionUID = 1L;

			@Override
			protected void populateItem(ListItem<Robot> item) {
				item.add(new Label("nombre"));
				item.add(new Label("duenio"));
				item.add(new Label("poderTotal"));
				item.add(new Label("danio"));		
				
				final Robot robot = item.getModelObject();
				item.add(new Link<String>("competir"){
					private static final long serialVersionUID = 1L;

					public void onClick() {
						ElegirContrincantePage.this.jugadorVista.setRobotContrincanteSeleccionado(robot);
						ElegirContrincantePage.this.pelearApplicationModel.setRobotContrincante(robot);
						ElegirContrincantePage.this.pelearApplicationModel.getPelea().setContrincante(robot);
						this.setResponsePage(new IngresarApuestaPage(ElegirContrincantePage.this,mainPage,pelearApplicationModel));
					}	
				});		
			}			
		};
		this.add(otrosRobots);
	}
	
	public void agregarLabels(){
		this.add(new Label("nombreRobotSeleccionado",this.jugadorVista.getRobotSeleccionado().getNombre()));
		this.add(new Label("nombreJugador",this.jugadorVista.getNombre()));
		this.add(new Label("dineroJugador",((Integer)this.jugadorVista.getDinero()).toString()));
	}
	
	public void agregarBotones(){		
		Link<String> volver = new Link<String>("volver"){
			private static final long serialVersionUID = 1L;

			@Override
			public void onClick() {
				this.setResponsePage(mainPage);
			}
		};
		this.add(volver);
	}

	public void setApuesta(int apuesta) {
		this.apuesta = apuesta;
	}

	public int getApuesta() {
		return apuesta;
	}	

}
